{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "9149eb35",
   "metadata": {},
   "source": [
    "### 导入相关需要的库"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "54eb5b39",
   "metadata": {},
   "outputs": [],
   "source": [
    "from core.data_processor import DataLoader\n",
    "import pandas as pd\n",
    "import json\n",
    "from core.model import Model\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "68805a73",
   "metadata": {},
   "outputs": [],
   "source": [
    "from numpy import set_printoptions\n",
    "set_printoptions(suppress=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5738b23e",
   "metadata": {},
   "source": [
    "#### 画图（可视化函数）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "df71a2d5",
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_results(predicted_data, true_data):\n",
    "    fig = plt.figure(facecolor='white')\n",
    "    ax = fig.add_subplot(111)\n",
    "    ax.plot(true_data, label='True Data')\n",
    "    plt.plot(predicted_data, label='Prediction')\n",
    "    plt.legend()\n",
    "    plt.show()\n",
    "\n",
    "\n",
    "def plot_results_multiple(predicted_data, true_data, prediction_len):\n",
    "    fig = plt.figure(facecolor='white')\n",
    "    ax = fig.add_subplot(111)\n",
    "    ax.plot(true_data)\n",
    "    # 填充预测列表，将其在图表中移动到正确的开始位置\n",
    "    for i, data in enumerate(predicted_data):\n",
    "        padding = [None for _ in range(i * prediction_len)]\n",
    "        plt.plot(padding + data)\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b6b82121",
   "metadata": {},
   "source": [
    "#### * 1.导入设置文件和数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "8b664d08",
   "metadata": {},
   "outputs": [],
   "source": [
    "configs = json.load(open('config.json', 'r'))\n",
    "df = pd.read_csv('./data/sh600031.csv')  # 读取股票文件"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "37c8d106",
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>close</th>\n",
       "      <th>volume</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2003-07-03</td>\n",
       "      <td>23.00</td>\n",
       "      <td>23.00</td>\n",
       "      <td>20.10</td>\n",
       "      <td>21.30</td>\n",
       "      <td>33816715</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2003-07-04</td>\n",
       "      <td>21.30</td>\n",
       "      <td>22.18</td>\n",
       "      <td>21.05</td>\n",
       "      <td>21.84</td>\n",
       "      <td>7697544</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2003-07-07</td>\n",
       "      <td>21.90</td>\n",
       "      <td>21.96</td>\n",
       "      <td>21.51</td>\n",
       "      <td>21.80</td>\n",
       "      <td>3951205</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2003-07-08</td>\n",
       "      <td>21.80</td>\n",
       "      <td>22.22</td>\n",
       "      <td>21.70</td>\n",
       "      <td>21.91</td>\n",
       "      <td>2117357</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2003-07-09</td>\n",
       "      <td>21.75</td>\n",
       "      <td>22.65</td>\n",
       "      <td>21.70</td>\n",
       "      <td>22.47</td>\n",
       "      <td>3440447</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         date   open   high    low  close    volume\n",
       "0  2003-07-03  23.00  23.00  20.10  21.30  33816715\n",
       "1  2003-07-04  21.30  22.18  21.05  21.84   7697544\n",
       "2  2003-07-07  21.90  21.96  21.51  21.80   3951205\n",
       "3  2003-07-08  21.80  22.22  21.70  21.91   2117357\n",
       "4  2003-07-09  21.75  22.65  21.70  22.47   3440447"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "700acb37",
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(4424, 6)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "654c4782",
   "metadata": {},
   "source": [
    "#### * 2.用DataLoader加载数据df，它将会安装预先设置好的‘train_test_split’和‘columns’对数据进行分割和采样"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "c675830a",
   "metadata": {},
   "outputs": [],
   "source": [
    "data = DataLoader(\n",
    "        dataframe=df,\n",
    "        split=configs['data']['train_test_split'],\n",
    "        cols=configs['data']['columns']\n",
    "    )"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "30e43fc5",
   "metadata": {},
   "source": [
    "     * 2.1 加载训练集，数据采用滑动窗口的方式采样：\n",
    "     按照‘sequence_length’序列长度对数据进行滑动窗口的方式采样：即第n+1个点数据+前n个点数据=sequence_length"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "90feb6b5",
   "metadata": {},
   "outputs": [],
   "source": [
    "x, y = data.get_train_data(\n",
    "        seq_len=configs['data']['sequence_length'],\n",
    "        input_timesteps=configs['data']['input_timesteps'],\n",
    "        normalise=configs['data']['normalise']\n",
    "    )"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "43f28a96",
   "metadata": {},
   "source": [
    "     * 2.2 加载训练集，数据采用滑动窗口的方式采样"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "e383a2d4",
   "metadata": {},
   "outputs": [],
   "source": [
    "x_test, y_test = data.get_test_data(\n",
    "        seq_len=configs['data']['sequence_length'],\n",
    "        input_timesteps=configs['data']['input_timesteps'],\n",
    "        normalise=configs['data']['normalise']\n",
    "    )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "3bc24024",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((3066, 25, 2), (3066, 5, 1))"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x.shape,y.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "8ee8b472",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((44, 25, 2), (44, 5, 1))"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_test.shape,y_test.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5c6c382c",
   "metadata": {},
   "source": [
    "#### * 3.构建模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "3f3f7c1a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[Model] Model Compiled\n",
      "Time taken: 0:00:01.282140\n"
     ]
    }
   ],
   "source": [
    "model = Model()\n",
    "model.build_model(configs)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "04a06be0",
   "metadata": {},
   "source": [
    "#### * 4.进行训练 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "32d67b83",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[Model] Training Started\n",
      "[Model] 32 epochs, 64 batch size\n",
      "Epoch 1/32\n",
      "48/48 [==============================] - 18s 229ms/step - loss: 0.0206 - val_loss: 0.0062\n",
      "Epoch 2/32\n",
      "48/48 [==============================] - 9s 185ms/step - loss: 0.0115 - val_loss: 0.0030\n",
      "Epoch 3/32\n",
      "48/48 [==============================] - 9s 184ms/step - loss: 0.0098 - val_loss: 0.0045\n",
      "Epoch 4/32\n",
      "48/48 [==============================] - 9s 184ms/step - loss: 0.0090 - val_loss: 0.0028\n",
      "Epoch 5/32\n",
      "48/48 [==============================] - 9s 188ms/step - loss: 0.0082 - val_loss: 0.0024\n",
      "Epoch 6/32\n",
      "48/48 [==============================] - 9s 192ms/step - loss: 0.0074 - val_loss: 0.0024\n",
      "Epoch 7/32\n",
      "48/48 [==============================] - 9s 189ms/step - loss: 0.0073 - val_loss: 0.0019\n",
      "Epoch 8/32\n",
      "48/48 [==============================] - 9s 189ms/step - loss: 0.0071 - val_loss: 0.0022\n",
      "Epoch 9/32\n",
      "48/48 [==============================] - 9s 186ms/step - loss: 0.0065 - val_loss: 0.0020\n",
      "[Model] Training Completed. Model saved as saved_models\n",
      "Time taken: 0:01:30.443665\n"
     ]
    }
   ],
   "source": [
    "# 内存中训练\n",
    "model.train(\n",
    "    x,\n",
    "    y,\n",
    "    epochs=configs['training']['epochs'],\n",
    "    batch_size=configs['training']['batch_size'],\n",
    "    validation_data=(x_test, y_test),\n",
    "    verbose=configs['training']['verbose'],\n",
    "    shuffle=configs['training']['shuffle'],\n",
    "    validation_freq=configs['training']['validation_freq'],\n",
    "    save_dir=configs['model']['save_dir']\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "27fc3ec2",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[Model] Predicting Point-by-Point...\n"
     ]
    }
   ],
   "source": [
    "# 逐点预测\n",
    "predictions_pointbypoint = model.predict_point_by_point(x_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "f170dca9",
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(220,)"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "predictions_pointbypoint.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "6cdc0ec4",
   "metadata": {},
   "outputs": [],
   "source": [
    "y_test = y_test.flatten()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "b856fdd1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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V6ioqKCyspL33ntvrIY94tjtl+985zuUlJREGxU9/fTT0efuvfdeKioqmD17Ns8999xYDHnEOXr0KOeeey7z5s1j/vz5/PSnPwVOsOPFOIFQVdUoLy839u/fbwSDQaOystLYuXPnWA9rzJg2bZrR2NjY67Fbb73VuPfeew3DMIx7773X+MY3vjEWQxs1/vWvfxlbtmwx5s+fH30s3j546qmnjAsvvNDQdd146623jFNPPXVMxjwa2O2Xb3/728Z9990Xs+3OnTuNyspKIxAIGAcOHDDKy8sNVVVHc7ijwrFjx4wtW7YYhmEYHR0dxsyZM42dO3eeUMfLCRXhb9q0iYqKCsrLy3G5XFx99dVs3LhxrIeVUmzcuJHrrrsOgOuuu44nnnhibAc0wpx11lnk5/fuWRpvH2zcuJFrr70WSZI47bTTaGtro7a2drSHPCrY7Zd4bNy4kauvvhq328306dOpqKhg06ZNIzzC0ae4uJiTTz4ZgKysLObOnUtNTc0JdbycUIJfU1PDlClTor+XlpZSU1MzhiMaWyRJ4qMf/SinnHIK69atA6C+vp7i4mIAJk2aRH19/VgOcUyItw/E8QMPPPAAlZWVXH/99VHrYjzul0OHDvH++++zbNmyE+p4OaEEX9CbN954g/fee49nnnmGX/ziF7z22mu9npckCUmSxmh0qYHYB9188YtfZP/+/WzdupXi4mK+/vWvj/WQxoSuri6uuOIKfvKTn5Cdnd3rueP9eDmhBL+kpISjR49Gf6+urqakpGQMRzS2WN+9qKiIyy67jE2bNjFx4sTobWdtbS1FRUVjOcQxId4+GO/Hz8SJE1EUBVmW+fznPx+1bcbTfgmHw1xxxRVcc801XH755cCJdbycUIK/dOlSqqqqOHjwIKFQiA0bNrB69eqxHtaY4PV66ezsjP78/PPPs2DBAlavXs369esBWL9+PZdccslYDnNMiLcPVq9eze9//3sMw+Dtt98mJycneis/HujpP//973+PZvCsXr2aDRs2EAwGOXjwIFVVVZx66qljNcwRwzAMbrjhBubOncstt9wSffyEOl7GeNI46Tz11FPGzJkzjfLycuPuu+8e6+GMGfv37zcqKyuNyspKY968edF90dTUZJx33nlGRUWFsWLFCqO5uXmMRzqyXH311cakSZMMh8NhlJSUGA899FDcfaDruvGlL33JKC8vNxYsWGC8++67Yzz6kcNuv3zmM58xFixYYCxcuNC4+OKLjWPHjkW3v/vuu43y8nJj1qxZxtNPPz2GIx85Xn/9dQMwFi5caCxatMhYtGiR8dRTT51Qx4tYaSsQCATjhBPK0hEIBAJBfITgCwQCwThBCL5AIBCME4TgCwQCwThBCL5AIBCME4TgCwQCwThBCL5AIBCME4TgCwQCwTjh/wN+M2YpN2/W1AAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 画图\n",
    "plot_results(predictions_pointbypoint, y_test)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "deep",
   "language": "python",
   "name": "deep"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
